home *** CD-ROM | disk | FTP | other *** search
- /*
- * このモジュールは,NIFPのインクルードファイルです。
- * このモジュールは,マシン依存していません。
- */
-
- #include <dos.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <io.h>
- #include <fcntl.h>
- #include <string.h>
- #include <ctype.h>
- #include <errno.h>
- #include <jctype.h>
- #include <jstring.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <conio.h>
- #include <time.h>
- #include <alloc.h>
- #include <dir.h>
-
- #define scldown() scroll(1,1,3,80,line-2)
- #define sclup() scroll(0,1,3,80,line-2)
-
- #define MAXPOINT 9999 /* タイトル最大数 */
- #define MAXLINE 999 /* 内容表示最大行数 */
- #define FMAXFILE 128 /* 最大ファイル数 */
- #define MAXDATF 1000 /* 最大記憶ファイル数 */
- #define MAXCUTNO 50 /* 最大カット文字列記憶数 */
- #define MAXMSGNO 10 /* 最大フォーラム3回メッセージ文字列記憶数 */
- #define MAXTBL (16384/sizeof(PCELL2))
-
- /* タイトルテーブル構造体 */
- typedef struct p_cell2 { /* 内容テーブル */
- int fno; /* ファイルNo. */
- long top,tail; /* 先頭ファイルポインタ,最終ファイルポインタ */
- long lineno;
- int cmt; /* コメントツリーのネスト数 */
- char nifid[8]; /* NIFTY-ID */
- int id,cno,cid; /* 発言番号,コメント数,コメント番号 */
- char title[81]; /* タイトル文字列 */
- } PCELL2;
-
- typedef struct p_cell { /* 管理テーブル */
- struct p_cell far *next; /* 次ポインタ */
- struct p_cell far *back; /* 前ポインタ */
- char mode,flag; /* モード,フラグ */
- int count; /* タイトルNo. */
- struct p_cell far *grp; /* グループタイトルテーブルポインタ */
- int lno; /* ページNo. */
- struct p_cell2 far *p; /* 内容テーブルポインタ */
- } PCELL;
-
- typedef struct p_cell3 {
- PCELL tbl[MAXTBL];
- struct p_cell3 far *next;
- } PCELL3;
-
- /* タイトル区分コード(タイトルテーブルのモード) */
- #define NHP 2 /* ホームパーティ受信 */
- #define NMAIL 3 /* 電子メール受信 */
- #define NFORUM 4 /* フォーラム会議室受信 */
- #define NNEWS 5 /* ニュース */
- #define NBBS 6 /* 掲示板 */
- #define NMEMBER 8 /* 会員情報(*) */
- #define NCB 10 /* CB(*) */
- #define NNOTE 11 /* お知らせ */
- #define NBILL 12 /* 課金情報(*) */
- #define NBYE 13 /* ログアウト(*) */
- #define NSINBUN 14 /* 新聞情報 */
- #define NLIB 15 /* フォーラムライブラリデータ(*) */
- #define NHPWRITE 16 /* HPの送信 */
- #define NFWRITE 17 /* フォーラムの送信 */
- #define NGUEST 18 /* HPのゲスト情報 */
- #define NFRT 19 /* フォーラム会議室タイトル一覧(*) */
- #define NFRS 20 /* フォーラム会議室検索一覧(*) */
- #define NLIBNO 21 /* フォーラムデータライブラリ一覧(*) */
- #define NLIBDATA 22 /* フォーラムデータライブラリデータ */
- #define NFRTIME 23 /* フォーラムリアルタイム会議(*) */
- #define NFNEWS 24 /* フォーラムニュース */
- #define NFBBS 25 /* フォーラム掲示板 */
- #define NMES 26 /* フォーラム会議室(*) */
- #define NMWRITE 27 /* 電子メールの送信 */
- #define NWRITE 28 /* その他の送信 */
- #define NPROF 29 /* 会員情報 */
- #define NINFO 30 /* 情報サービス */
- #define NTENKI 31 /* 天気情報 */
- #define NMRCV 32 /* 電子メール受信リスト(*) */
- #define NSDL 33 /* 電子メール送信簿(*) */
- #define NRCL 34 /* 電子メール受信簿(*) */
- #define NOPT 35 /* オプション設定(*) */
- #define NM2WRITE 36 /* 電子メールの送信(*)(AIR CRAFT用) */
- #define NPATIO 37 /* パティオ会議(*) */
- #define NPGUEST 38 /* パティオのゲスト情報 */
- #define NFORUM2 39 /* フォーラム3回メッセージ情報 */
- #define NHPHEAD 128 /* HPタイトル */
- #define NMAILHEAD 129 /* 電子メールタイトル */
- #define NFORUMHEAD 130 /* フォーラムタイトル */
- #define NNEWSHEAD 131 /* ニュースタイトル */
- #define NBBSHEAD 132 /* 掲示板タイトル */
- #define NCBHEAD 133 /* CBタイトル */
- #define NNOTEHEAD 134 /* お知らせタイトル */
- #define NBILLHEAD 135 /* 課金情報タイトル */
- #define NBYEHEAD 136 /* ログアウトタイトル */
- #define NSINBUNHEAD 137 /* 新聞情報タイトル */
- #define NLIBHEAD 138 /* フォーラムデータライブラリタイトル */
- #define NMESHEAD 139 /* フォーラム会議室タイトル */
- #define NFRTHEAD 140 /* フォーラム会議室タイトル一覧 */
- #define NFRSHEAD 141 /* フォーラム会議室検索一覧 */
- #define NFRTIMEHEAD 142 /* フォーラムリアルタイム会議 */
- #define NFNEWSHEAD 143 /* フォーラムニュースタイトル */
- #define NFBBSHEAD 144 /* フォーラム掲示板タイトル */
- #define NLIBNOHEAD 145 /* フォーラムデータライブラリ一覧 */
- #define NMESNOHEAD 146 /* フォーラム会議室一覧 */
- #define NMEMBERHEAD 147 /* 会員情報タイトル */
- #define NINFOHEAD 148 /* 情報サービスタイトル */
- #define NMRCVHEAD 149 /* 電子メール受信リストタイトル */
- #define NSDLHEAD 150 /* 電子メール送信簿タイトル */
- #define NRCLHEAD 151 /* 電子メール受信簿タイトル */
- #define NTITLE 152 /* HPのタイトル一覧 */
- #define NINIT 153 /* オープニング */
- #define NTOP 154 /* トップメニュー */
- #define NMYFORUM 155 /* MYFORUM一覧 */
- #define NOPTHEAD 156 /* オプション設定 */
- #define NPATIOHEAD 157 /* パティオ会議タイトル */
- #define NETC 253 /* その他 */
- #define NSEPA 254 /* セパレータ */
- #define NEND 255 /* END */
-
- /* 表示モードフラグ */
- #define NFNORMAL 1 /* ノーマル */
- #define NFCOMENT 2 /* コメント */
- #define NFCOMENTID 3 /* コメントID */
- #define NFSEARCH 4 /* 検索 */
- #define NFID 5 /* ID */
- #define NFAUTO1 6 /* 自動表示中 */
- #define NFAUTO2 7 /* 自動表示一時停止 */
-
- /* タイトルテーブルフラグ */
- #define FSENTAKU 0x80 /* 選択 */
- #define FSAKUJYO 0x40 /* 削除 */
- #define FTAG 0x20 /* タグ */
- #define FYOMI 0x10 /* 既読 */
- #define FJUMP 0x08 /* タグ・検索時のジャンプ用 */
- #define FCYCLE 0x04 /* サイクリック会議室フラグ */
- #define FDISP 0x01 /* 有効フラグ */
-
- /* タイトル区分用特殊分類 */
- #define SWRITE 1 /* 発言 */
- #define SGUEST 2 /* HPのGUESTコマンド */
- #define STITLE 3 /* HPのTITLEコマンド */
- #define SPROF 4 /* PROFコマンド */
-
- /* 画面表示色カスタマイズ番号 */
- #define IROMAX 39
- #define IFILE 0
- #define INIFMODE 1
- #define ITITLE 2
- #define IMODE 3
- #define IHEAD 4
- #define IRHEAD 5
- #define IETC 6
- #define IRETC 7
- #define ISEPA 8
- #define IRSEPA 9
- #define IEND 10
- #define IREND 11
- #define INAIYOU 12
- #define ISETUMEI 13
- #define ILINE 14
- #define IUP 15
- #define IDOWN 16
- #define IKEN 17
- #define ICMT 18
- #define IID 19
- #define ISENTAKU 20
- #define IRSENTAKU 21
- #define ISAKUJYO 22
- #define IRSAKUJYO 23
- #define IGATTAI 24
- #define IRGATTAI 25
- #define ITAG 26
- #define IRTAG 27
- #define IYOMI 28
- #define IRYOMI 29
- #define ITAB 30
- #define ICR 31
- #define IJIKOKU 32
- #define IFWAKU 33
- #define IFCUR 34
- #define IPFKEY 35
- #define IKENSAKU 36
- #define IKAKUNIN 37
- #define IERROR 38
-
- /* ログ整理テーブル */
- #define LHPHEAD 0 /* HPタイトル */
- #define LHP 1 /* ホームパーティ受信 */
- #define LHPWRITE 2 /* HPの送信 */
- #define LGUEST 3 /* HPのゲスト情報 */
- #define LTITLE 4 /* HPのタイトル一覧 */
- #define LMAILHEAD 5 /* 電子メールタイトル */
- #define LMAIL 6 /* 電子メール受信 */
- #define LMWRITE 7 /* 電子メールの送信 */
- #define LMRCVHEAD 8 /* 電子メール受信リストタイトル */
- #define LRCLHEAD 9 /* 電子メール受信簿タイトル */
- #define LSDLHEAD 10 /* 電子メール送信簿タイトル */
- #define LNEWSHEAD 11 /* ニュースタイトル */
- #define LNEWS 12 /* ニュース */
- #define LBBSHEAD 13 /* 掲示板タイトル */
- #define LBBS 14 /* 掲示板 */
- #define LCBHEAD 15 /* CBタイトル */
- #define LNOTEHEAD 16 /* お知らせタイトル */
- #define LNOTE 17 /* お知らせ */
- #define LBILLHEAD 18 /* 課金情報タイトル */
- #define LSINBUNHEAD 19 /* 新聞情報タイトル */
- #define LSINBUN 20 /* 新聞情報 */
- #define LMYFORUM 21 /* MYFORUM一覧 */
- #define LFORUMHEAD 22 /* フォーラムタイトル */
- #define LFNEWSHEAD 23 /* フォーラムニュースタイトル */
- #define LFNEWS 24 /* フォーラムニュース */
- #define LFBBSHEAD 25 /* フォーラム掲示板タイトル */
- #define LFBBS 26 /* フォーラム掲示板 */
- #define LMESNOHEAD 27 /* フォーラム会議室一覧 */
- #define LMESHEAD 28 /* フォーラム会議室タイトル */
- #define LFORUM 29 /* フォーラム会議室受信 */
- #define LFWRITE 30 /* フォーラムの送信 */
- #define LFRTHEAD 31 /* フォーラム会議室タイトル一覧 */
- #define LFRSHEAD 32 /* フォーラム会議室検索一覧 */
- #define LFRTIMEHEAD 33 /* フォーラムリアルタイム会議 */
- #define LLIBNOHEAD 34 /* フォーラムデータライブラリ一覧 */
- #define LLIBHEAD 35 /* フォーラムデータライブラリタイトル */
- #define LLIBDATA 36 /* フォーラムデータライブラリデータ */
- #define LOPTHEAD 37 /* オプション設定 */
- #define LWRITE 38 /* その他の送信 */
- #define LINFOHEAD 39 /* 情報サービスタイトル */
- #define LINFO 40 /* 情報サービス */
- #define LMEMBERHEAD 41 /* 会員情報タイトル */
- #define LPROF 42 /* 会員情報 */
- #define LTENKI 43 /* 天気情報 */
- #define LINIT 44 /* オープニング */
- #define LTOP 45 /* トップメニュー */
- #define LBYEHEAD 46 /* ログアウトタイトル */
- #define LPATIOHEAD 47 /* パティオ会議室タイトル */
- #define LPGUEST 48 /* パティオ会議室ゲスト情報 */
- #define LETC 49 /* その他 */
- #define LOGDIRMAX LETC*2+2
-
- /*
- * 機能キーコード定義
- */
- #define PF1 0x81
- #define PF2 0x82
- #define PF3 0x83
- #define PF4 0x84
- #define PF5 0x85
- #define PF6 0x86
- #define PF7 0x87
- #define PF8 0x88
- #define PF9 0x89
- #define PF10 0x8a
- #define S_PF1 0xa1
- #define S_PF2 0xa2
- #define S_PF3 0xa3
- #define S_PF4 0xa4
- #define S_PF5 0xa5
- #define S_PF6 0xa6
- #define S_PF7 0xa7
- #define S_PF8 0xa8
- #define S_PF9 0xa9
- #define S_PF10 0xaa
- #define C_PF1 0xc1
- #define C_PF2 0xc2
- #define C_PF3 0xc3
- #define C_PF4 0xc4
- #define C_PF5 0xc5
- #define C_PF6 0xc6
- #define C_PF7 0xc7
- #define C_PF8 0xc8
- #define C_PF9 0xc9
- #define C_PF10 0xca
- #define SC_PF1 0xf5
- #define SC_PF2 0xf6
- #define SC_PF3 0xf7
- #define SC_PF4 0xf8
- #define SC_PF5 0xf9
- #define SC_PF6 0xfa
- #define SC_PF7 0xfb
- #define SC_PF8 0xfc
- #define SC_PF9 0xfd
- #define SC_PF10 0xfe
- #define UEYA 0x90
- #define SITAYA 0x91
- #define HIDARIYA 0x92
- #define MIGIYA 0x93
- #define KAIGYO 0x0d
- #define SENTAKU 0xff
- #define ESC 0x1b
-
- /* ログファイル修正フラグ(foutmode) */
- #define F_UPDATE 1
- #define F_MEMERR 2
-
- extern PCELL far *p_top;
- extern PCELL far *p_head;
- extern PCELL far *p_tail;
- extern char filename[],gfilename[];
- extern union REGS regs;
- extern struct SREGS sregs;
- extern char far *file[];
- extern FILE *fd;
- extern int cfno;
- extern char far *buf1[];
- extern char fbuf1[];
- extern char far *po;
- extern char *dataend;
- extern char hpid[],hpmsg[],forummsg[],forumname[];
- extern char niftyid[];
- extern char heya[],saveheya[],savebuf[];
- extern int fmeslibno,pend,jumpon,preno;
- extern int gp;
- extern char far *logdir[];
- extern long jpp,jpplno,savepp,savepplno,fsavepp;
- extern char savehpread;
- extern long p,p_linecount,savep,sentakuno,sakujyono,tagno;
- extern char nmode,savecon,nifmode,savenmode,bunmode,foutmode;
- extern int savepno;
- extern int fno,maxfno;
- extern int line,saveline;
- extern int typespeed;
- extern int waittimes,titlecount,vrammode,fsortmode,fsort2mode;
- extern int autodisptime;
- extern char autodispsw;
- extern char editer[];
- extern char kiridir[];
- extern char hatudir[];
- extern char titledir[];
- extern char keytbl[];
- extern char irotbl[];
- extern int endmode;
- extern int tabno;
- extern int topendmode;
- extern int yesnomode;
- extern int sakujyomode;
- extern int editmode;
- extern int tabcrmode;
- extern int jikokumode;
- extern int cutmode;
- extern int nextmode;
- extern int startmode;
- extern char sepamode;
- extern int keyshiftmode;
- extern int midokumode;
- extern int timechkmode;
- extern PCELL far *rsv_p;
- extern char savsafix[];
- extern char nifsafix[];
- extern char ESCin[],ESCout[];
- extern char far *cutstrtbl[];
- extern char far *msgstrtbl[];
-
- extern int savekeymode,passmode;
- extern int keta,gyo,tmode;
- extern char atr;
- extern long vramoffset;
- extern int kensakukensu;
- extern PCELL far *ttop;
- extern PCELL far *ttail;
- extern PCELL far *ggtop;
- extern PCELL far *ggtail;
- extern PCELL far *gpo;
- extern char nifid[];
- extern char kensakumoji[];
- extern char *space;
- extern char *spalate;
- extern int rtnk;
- extern char logforum[],loghpid[],logmes[],loglib[],logniftyid[];
- extern long sp;
- extern int passflag;
- extern char erron;
- extern time_t lsavetime[];
- extern char tagmode,titlemode;
- extern char datfile[];
- extern char far *datf[];
- extern long midokuno;
- extern char cmdtbl[15][41];
- extern char datfile_s[];
- extern int emsno;
- extern int ems_count;
- extern int ems_lno;
- extern int ems_handle;
- extern long ems_seg;
- extern PCELL far *p_freetop;
- extern PCELL3 far *p_tbltop;
- extern long forum3msgp;
-
- extern int datf_src(char *,int);
- extern void loc(int,int);
- extern void locate(int,int);
- extern void xlocate2(void);
- extern void xlocate(void);
- extern void scroll(int,int,int,int,int);
- extern int getline(void);
- extern void setcon(int);
- extern void restorecon(int);
- extern void cslon(void);
- extern void csloff(void);
- extern void chglowline(void);
- extern void chghighline(void);
- extern void clr(void);
- extern void allclr(void);
- extern void setline(int);
- extern void atrset(char);
- extern void iro(char);
- extern void deforutoiro(void);
- extern void print(char *);
- extern void keyget(void);
- extern void pfdisp(int);
- extern void pfset(void);
- extern void stsdisp(void);
- extern char keyget2(int);
- extern void cgetsx(char *,int);
- extern int rtncut(char *);
- extern void rtncut2(char *);
- extern int yesnocheck(char *);
- extern void errdisp1(char *);
- extern void errdisp2(char *);
- extern void errdisp3(char *);
- extern void nstatus(int,PCELL far *,int,int,int,int);
- extern void topdisp(void);
- extern int asctodec(char *);
- extern int bunget(PCELL far *,int);
- extern void hpread(long,int);
- extern char *substrstr(char *,char *);
- extern char cnvpfkey(int);
- extern void cgetfsx(char *,char *);
- extern int filechoice(int);
- extern int checkfile(char *);
- extern void xxfseek(PCELL far *,long);
- extern void xhpread(int);
- extern void xnstatus(void);
- extern void logclose(int);
- extern int logedit1(PCELL far *,int,int);
- extern FILE *xxfopen(char *,char *);
- extern FILE *fopen_sub(char *,int);
- extern FILE *xfopen(char *);
- extern int xfclose(void);
- extern int xfseek(long);
- extern long xftell(void);
- extern int xfgetc(void);
- extern int xfeof(void);
- extern char *xfgets(char *,int);
- extern void xstrncpy(char *,char *);
- extern void xxstrncpy(char *,char *,int);
- extern void xxstrncpy80(char *,char *);
- extern void xxstrncpy50(char *,char *);
- extern int xstrncmp(char *,char *);
- extern int xstrcmp(char *,char *);
- extern void set_cmdcopy(char *,int,PCELL far *,char *,int);
- extern int comand_disp(PCELL far *,int);
- extern void help(int);
- extern void strncat80(char *,char *);
- extern void str79set(char *);
-
- struct dir2_tree {
- struct dir2_tree *next;
- struct dir2_tree *back;
- struct stat sbuf;
- char name[13];
- char far *file;
- };
-
- extern int set2_tree(char *);
- extern void tree2free(void);
- extern struct dir2_tree *tree2_top;
- extern struct dir2_tree *tree2_pos;
-
- #define _fstrcpy strcpy
- #define _fstrncpy strncpy
- #define _fstrcmp strcmp
- #define _fmemset memset
- #define _fmemcpy memcpy
- #define _fmemcmp memcmp
-
- /*
- extern char far *_fstrcpy(char far *,char far *);
- extern char far *_fstrncpy(char far *,char far *,int);
- extern int _fstrcmp(char far *,char far *);
- extern char far *_fmemset(char far *,char,int);
- extern char far *_fmemcpy(char far *,char far *,int);
- extern int _fmemcmp(char far *,char far *,int);
- */
-
- extern void grh_disp(char *,int);
- extern void grh_sub(long,long);
- extern int nifoutopen(void);
- extern int nifoutropen(void);
- extern int nifoutput(PCELL far *);
- extern int nifoutget(void);
- extern void nifoutclose(int);
- extern void get_fdir(char *,char *);
- extern int keycheck(void);
- extern char *memgeterror;
- extern void waku_disp(int,int,int,int,char *,char *);
- extern char YEAR[],year[],mon[],mon2[],mday[],hour1[],hour2[],min[],sec[],ampm[];
- extern void dateget(void);
- extern void clr1(char);
- extern void clr2(void);
- extern PCELL far *cmtsepa(PCELL far *);
- extern void kprintf(char *);
- extern void eprintf(char *);
-
- extern PCELL far *tbl_alloc(int);
- extern void tbl_free(PCELL far *);
- extern void tbl_set(PCELL far *);
- extern int ems_get(void);
- extern int ems_add(int);
- extern int ems_set(int);
- extern int ems_check(void);
- extern long ems_getseg(void);
- extern int ems_free(void);